/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import java.util.Objects;

public class Avaliation implements Comparable<Avaliation>{
    
    private Long id;
    private Judge judge;
    private Beer beer;
    private String bjcpKnowledge;
    private String nonBjcpKnowledge;
    private Boolean acetaldeHyde;
    private Boolean alcoholic;
    private Boolean astringent;
    private Boolean diacetyl;
    private Boolean dms;
    private Boolean estery;
    private Boolean grassy;
    private Boolean lightStruck;
    private Boolean metallic;
    private Boolean musty;
    private Boolean oxidized;
    private Boolean phenolic;
    private Boolean solvent;
    private Boolean sourAcid;
    private Boolean sulfur;
    private Boolean vegetal;
    private Boolean yeasty;
    private String aroma;
    private String appearence;
    private String flavor;
    private String mouthfeel;
    private String overallImpression;
    private int scoreAroma;
    private int scoreAppearence;
    private int scoreFlavor;
    private int scoreMouthfeel;
    private int scoreOverall;
    private int sumScore;
    private String category;
    private String subcategory;
    private String entry;
    private String subcategorySpell;
    private String specialIngredients;
    private String comments;
    private Boolean bootleInspection;
    
    public Judge getJudge() {
        return judge;
    }

    public void setJudge(Judge judge) {
        this.judge = judge;
    }

    public Beer getBeer() {
        return beer;
    }

    public void setBeer(Beer beer) {
        this.beer = beer;
    }

    public String getBjcpKnowledge() {
        return bjcpKnowledge;
    }

    public void setBjcpKnowledge(String bjcpKnowledge) {
        this.bjcpKnowledge = bjcpKnowledge;
    }

    public String getNonBjcpKnowledge() {
        return nonBjcpKnowledge;
    }

    public void setNonBjcpKnowledge(String nonBjcpKnowledge) {
        this.nonBjcpKnowledge = nonBjcpKnowledge;
    }
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Boolean getAcetaldeHyde() {
        return acetaldeHyde;
    }

    public void setAcetaldeHyde(Boolean acetaldeHyde) {
        this.acetaldeHyde = acetaldeHyde;
    }

    public Boolean getAlcoholic() {
        return alcoholic;
    }

    public void setAlcoholic(Boolean alcoholic) {
        this.alcoholic = alcoholic;
    }

    public Boolean getAstringent() {
        return astringent;
    }

    public void setAstringent(Boolean astringent) {
        this.astringent = astringent;
    }

    public Boolean getDiacetyl() {
        return diacetyl;
    }

    public void setDiacetyl(Boolean diacetyl) {
        this.diacetyl = diacetyl;
    }

    public Boolean getDms() {
        return dms;
    }

    public void setDms(Boolean dms) {
        this.dms = dms;
    }

    public Boolean getEstery() {
        return estery;
    }

    public void setEstery(Boolean estery) {
        this.estery = estery;
    }

    public Boolean getGrassy() {
        return grassy;
    }

    public void setGrassy(Boolean grassy) {
        this.grassy = grassy;
    }

    public Boolean getLightStruck() {
        return lightStruck;
    }

    public void setLightStruck(Boolean lightStruck) {
        this.lightStruck = lightStruck;
    }

    public Boolean getMetallic() {
        return metallic;
    }

    public void setMetallic(Boolean metallic) {
        this.metallic = metallic;
    }

    public Boolean getMusty() {
        return musty;
    }

    public void setMusty(Boolean musty) {
        this.musty = musty;
    }

    public Boolean getOxidized() {
        return oxidized;
    }

    public void setOxidized(Boolean oxidized) {
        this.oxidized = oxidized;
    }

    public Boolean getPhenolic() {
        return phenolic;
    }

    public void setPhenolic(Boolean phenolic) {
        this.phenolic = phenolic;
    }

    public Boolean getSolvent() {
        return solvent;
    }

    public void setSolvent(Boolean solvent) {
        this.solvent = solvent;
    }

    public Boolean getSourAcid() {
        return sourAcid;
    }

    public void setSourAcid(Boolean sourAcid) {
        this.sourAcid = sourAcid;
    }

    public Boolean getSulfur() {
        return sulfur;
    }

    public void setSulfur(Boolean sulfur) {
        this.sulfur = sulfur;
    }

    public Boolean getVegetal() {
        return vegetal;
    }

    public void setVegetal(Boolean vegetal) {
        this.vegetal = vegetal;
    }

    public Boolean getYeasty() {
        return yeasty;
    }

    public void setYeasty(Boolean yeasty) {
        this.yeasty = yeasty;
    }

    public String getAroma() {
        return aroma;
    }

    public void setAroma(String aroma) {
        this.aroma = aroma;
    }

    public String getAppearence() {
        return appearence;
    }

    public void setAppearence(String appearence) {
        this.appearence = appearence;
    }

    public String getFlavor() {
        return flavor;
    }

    public void setFlavor(String flavor) {
        this.flavor = flavor;
    }

    public String getMouthfeel() {
        return mouthfeel;
    }

    public void setMouthfeel(String mouthfeel) {
        this.mouthfeel = mouthfeel;
    }

    public String getOverallImpression() {
        return overallImpression;
    }

    public void setOverallImpression(String overallImpression) {
        this.overallImpression = overallImpression;
    }

    public int getScoreAroma() {
        return scoreAroma;
    }

    public void setScoreAroma(int scoreAroma) {
        this.scoreAroma = scoreAroma;
    }

    public int getScoreAppearence() {
        return scoreAppearence;
    }

    public void setScoreAppearence(int scoreAppearence) {
        this.scoreAppearence = scoreAppearence;
    }

    public int getScoreFlavor() {
        return scoreFlavor;
    }

    public void setScoreFlavor(int scoreFlavor) {
        this.scoreFlavor = scoreFlavor;
    }

    public int getScoreMouthfeel() {
        return scoreMouthfeel;
    }

    public void setScoreMouthfeel(int scoreMouthfeel) {
        this.scoreMouthfeel = scoreMouthfeel;
    }

    public int getScoreOverall() {
        return scoreOverall;
    }

    public void setScoreOverall(int scoreOverall) {
        this.scoreOverall = scoreOverall;
    }

    public int getSumScore() {
        return sumScore;
    }

    public void setSumScore(int sumScore) {
        this.sumScore = sumScore;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getSubcategory() {
        return subcategory;
    }

    public void setSubcategory(String subcategory) {
        this.subcategory = subcategory;
    }

    public String getEntry() {
        return entry;
    }

    public void setEntry(String entry) {
        this.entry = entry;
    }

    public String getSubcategorySpell() {
        return subcategorySpell;
    }

    public void setSubcategorySpell(String subcategorySpell) {
        this.subcategorySpell = subcategorySpell;
    }

    public String getSpecialIngredients() {
        return specialIngredients;
    }

    public void setSpecialIngredients(String specialIngredients) {
        this.specialIngredients = specialIngredients;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public Boolean isBootleInspection() {
        return bootleInspection;
    }

    public void setBootleInspection(Boolean bootleInspection) {
        this.bootleInspection = bootleInspection;
    }
    
    public void addJudge(Judge judge){
        this.judge = judge;
    }
    
    public void addBeer(Beer beer){
        this.beer = beer;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Avaliation other = (Avaliation) obj;
        if (!Objects.equals(this.id, other.id)) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Avaliation{" + "id=" + id + ", judge=" + judge.getName() + ", beer=" + beer.getName() + '}';
    }

    @Override
    public int compareTo(Avaliation o) {
        return (this.getId()).compareTo(o.getId());
    }
    
}
